#include "BulletCollision/CollisionShapes/btTriangleInfoMap.h"
#ifdef __cplusplus
extern "C" {
#endif
btTriangleInfoMapData* bullet_NewbtTriangleInfoMapData(){
	btTriangleInfoMapData* wrap_out = new btTriangleInfoMapData();
	return wrap_out;
}

float bullet_btTriangleInfoMapData_GetFieldOfM_convexEpsilon(btTriangleInfoMapData* c_this){
	return (float)(c_this->m_convexEpsilon);
}

float bullet_btTriangleInfoMapData_GetFieldOfM_edgeDistanceThreshold(btTriangleInfoMapData* c_this){
	return (float)(c_this->m_edgeDistanceThreshold);
}

float bullet_btTriangleInfoMapData_GetFieldOfM_equalVertexThreshold(btTriangleInfoMapData* c_this){
	return (float)(c_this->m_equalVertexThreshold);
}

int** bullet_btTriangleInfoMapData_GetFieldOfM_hashTablePtr(btTriangleInfoMapData* c_this){
	return (int**)(&c_this->m_hashTablePtr);
}

int bullet_btTriangleInfoMapData_GetFieldOfM_hashTableSize(btTriangleInfoMapData* c_this){
	return (int)(c_this->m_hashTableSize);
}

int** bullet_btTriangleInfoMapData_GetFieldOfM_keyArrayPtr(btTriangleInfoMapData* c_this){
	return (int**)(&c_this->m_keyArrayPtr);
}

int** bullet_btTriangleInfoMapData_GetFieldOfM_nextPtr(btTriangleInfoMapData* c_this){
	return (int**)(&c_this->m_nextPtr);
}

int bullet_btTriangleInfoMapData_GetFieldOfM_nextSize(btTriangleInfoMapData* c_this){
	return (int)(c_this->m_nextSize);
}

int bullet_btTriangleInfoMapData_GetFieldOfM_numKeys(btTriangleInfoMapData* c_this){
	return (int)(c_this->m_numKeys);
}

int bullet_btTriangleInfoMapData_GetFieldOfM_numValues(btTriangleInfoMapData* c_this){
	return (int)(c_this->m_numValues);
}

char** bullet_btTriangleInfoMapData_GetFieldOfM_padding(btTriangleInfoMapData* c_this){
	return (char**)(&c_this->m_padding);
}

float bullet_btTriangleInfoMapData_GetFieldOfM_planarEpsilon(btTriangleInfoMapData* c_this){
	return (float)(c_this->m_planarEpsilon);
}

float bullet_btTriangleInfoMapData_GetFieldOfM_zeroAreaThreshold(btTriangleInfoMapData* c_this){
	return (float)(c_this->m_zeroAreaThreshold);
}

btTriangleInfoMap* bullet_NewbtTriangleInfoMap(){
	btTriangleInfoMap* wrap_out = new btTriangleInfoMap();
	return wrap_out;
}

void bullet_btTriangleInfoMap_deSerialize(btTriangleInfoMap* c_this,btTriangleInfoMapData* data){
	btTriangleInfoMapData& c_arg_data=(btTriangleInfoMapData&)(*data);
	c_this->deSerialize(c_arg_data);
}

double bullet_btTriangleInfoMap_GetFieldOfM_convexEpsilon(btTriangleInfoMap* c_this){
	return (double)(c_this->m_convexEpsilon);
}

double bullet_btTriangleInfoMap_GetFieldOfM_edgeDistanceThreshold(btTriangleInfoMap* c_this){
	return (double)(c_this->m_edgeDistanceThreshold);
}

double bullet_btTriangleInfoMap_GetFieldOfM_equalVertexThreshold(btTriangleInfoMap* c_this){
	return (double)(c_this->m_equalVertexThreshold);
}

double bullet_btTriangleInfoMap_GetFieldOfM_maxEdgeAngleThreshold(btTriangleInfoMap* c_this){
	return (double)(c_this->m_maxEdgeAngleThreshold);
}

double bullet_btTriangleInfoMap_GetFieldOfM_planarEpsilon(btTriangleInfoMap* c_this){
	return (double)(c_this->m_planarEpsilon);
}

double bullet_btTriangleInfoMap_GetFieldOfM_zeroAreaThreshold(btTriangleInfoMap* c_this){
	return (double)(c_this->m_zeroAreaThreshold);
}

btTriangleInfoData* bullet_NewbtTriangleInfoData(){
	btTriangleInfoData* wrap_out = new btTriangleInfoData();
	return wrap_out;
}

float bullet_btTriangleInfoData_GetFieldOfM_edgeV0V1Angle(btTriangleInfoData* c_this){
	return (float)(c_this->m_edgeV0V1Angle);
}

float bullet_btTriangleInfoData_GetFieldOfM_edgeV1V2Angle(btTriangleInfoData* c_this){
	return (float)(c_this->m_edgeV1V2Angle);
}

float bullet_btTriangleInfoData_GetFieldOfM_edgeV2V0Angle(btTriangleInfoData* c_this){
	return (float)(c_this->m_edgeV2V0Angle);
}

int bullet_btTriangleInfoData_GetFieldOfM_flags(btTriangleInfoData* c_this){
	return (int)(c_this->m_flags);
}

btTriangleInfo* bullet_NewbtTriangleInfo(){
	btTriangleInfo* wrap_out = new btTriangleInfo();
	return wrap_out;
}

double bullet_btTriangleInfo_GetFieldOfM_edgeV0V1Angle(btTriangleInfo* c_this){
	return (double)(c_this->m_edgeV0V1Angle);
}

double bullet_btTriangleInfo_GetFieldOfM_edgeV1V2Angle(btTriangleInfo* c_this){
	return (double)(c_this->m_edgeV1V2Angle);
}

double bullet_btTriangleInfo_GetFieldOfM_edgeV2V0Angle(btTriangleInfo* c_this){
	return (double)(c_this->m_edgeV2V0Angle);
}

int bullet_btTriangleInfo_GetFieldOfM_flags(btTriangleInfo* c_this){
	return (int)(c_this->m_flags);
}

#ifdef __cplusplus
}
#endif
